<?php

namespace app\controller\test;


use app\model\content\ContentBlogModel;
use app\service\BangCache;

class ModelCache extends Base
{
    // TODO 模型缓存测试
    //   模型已经做好，测试模型是否可以正常使用

    /**
     * 查询一条
     * 查询列表
     * 修改，删除缓存重新查询
     * 修改缓存，查询列表，查询一条
     *
     */

    // 查询一条：第二次查询没有SQL
    // http://light/test/model-cache/one
    public function one()
    {
        $where = $bang = ['id' => 1];
        $model = new ContentBlogModel();
        $info  = $model->oneSimpleCache($bang, $where);

        echo '第一次查询有SQL，第二次查询没有SQL<br>';
        echo '查询语句：' . $model->getLastSql();
        echo '<br><br>';
        var_dump($info);
    }

    // 查询列表：第二次查询有SQL
    public function lists()
    {
        $where = $bang = ['uid' => 11];
        $model = new ContentBlogModel();
        $lists = $model->listAllCache($bang, $where);

        echo '第一次查询有SQL，第二次查询有SQL<br>';
        echo '查询语句：' . $model->getLastSql();
        echo '<br><br>';
        var_dump($lists);
    }

    //  查询列表：第二次查询有SQL
    public function ids()
    {
        $ids   = [1, 2, 3, 4, 5, 11, 12, 13, 14, 15];
        $model = new ContentBlogModel();
        $lists = $model->getListByIdsCache($ids);

        echo '第一次查询有SQL，第二次查询有SQL<br>';
        echo '查询语句：' . $model->getLastSql();
        echo '<br><br>';
        var_dump($lists);
    }

    // 修改缓存，重新查询没有SQL
    public function edit()
    {
        $id     = 1;
        $model  = new ContentBlogModel();
        $updata = ['title' => '修改直接更新缓存'];
        $model->updateCache($id, $updata);


        echo '修改缓存，重新查询没有SQL<br>';
        echo '<br>执行查询一条<br>';
        $where1 = $bang1 = ['id' => 1];
        $info   = $model->oneSimpleCache($bang1, $where1);
        echo '查询语句：' . $model->getLastSql();

        echo '<br>执行查询列表<br>';
        $where2 = $bang2 = ['uid' => 11];
        $lists2 = $model->listAllCache($bang2, $where2);
        echo '查询语句：' . $model->getLastSql();

        echo '<br>执行查询多个id<br>';
        $ids    = [1, 2, 3, 4, 5, 11, 12, 13, 14, 15];
        $lists3 = $model->getListByIdsCache($ids);
        echo '查询语句：' . $model->getLastSql();

        echo '<br><br>';
        var_dump($info);
        echo '<br><br>';
        var_dump($lists2);
        echo '<br><br>';
        var_dump($lists3);
    }


    // 删除缓存，重新查询有SQL
    public function delete()
    {
        $id    = 1;
        $model = new ContentBlogModel();
        $info  = $model->oneSimple($id);
        $model->deleteCacheShow($info);

        echo '删除缓存，重新查询有SQL<br>';
        echo '<br>执行查询一条<br>';
        $where1 = $bang1 = ['id' => 1];
        $info   = $model->oneSimpleCache($bang1, $where1);
        echo '查询语句：' . $model->getLastSql();

        echo '<br>执行查询列表<br>';
        $where2 = $bang2 = ['uid' => 11];
        $lists2 = $model->listAllCache($bang2, $where2);
        echo '查询语句：' . $model->getLastSql();

        echo '<br>执行查询多个id<br>';
        $ids    = [1, 2, 3, 4, 5, 11, 12, 13, 14, 15];
        $lists3 = $model->getListByIdsCache($ids);
        echo '查询语句：' . $model->getLastSql();

        echo '<br><br>';
        var_dump($info);
        echo '<br><br>';
        var_dump($lists2);
        echo '<br><br>';
        var_dump($lists3);
    }

}


